/**
 * 面试题 02.02. 返回倒数第 k 个节点
 *
 * 【简单】
 *
 * 提示
 * 实现一种算法，找出单向链表中倒数第 k 个节点。返回该节点的值。
 *
 * 示例：
 * 输入： 1->2->3->4->5 和 k = 2
 * 输出： 4
 */

import { ListNode } from '../utils/list'

function kthToLast(head: ListNode | null, k: number): number {
	let fast = head
	let slow = head

	for (let i = 0; i < k; i++) {
		fast = fast!.next
	}

	while (fast) {
		fast = fast.next
		slow = slow!.next
	}

	return slow!.val as number
}
